home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
elk-2_0.lha
/
elk-2.0
/
CHANGES
< prev
next >
Wrap
Text File
|
1992-11-22
|
8KB
|
190 lines
Changes from release 1.5 to release 2.0
General:
o The build and install process has been improved significantly (see
file INSTALL)
o Added a new directory "config" that holds the system-specific
configuration files and the site-file
o Added a build shell script and a unified Makefile to all
directories; "build" creates the ``real'' Makefiles containing
system- and site-specific details during the make process
o Added install, lint, clean, and distclean targets to all
Makefiles
o Placed files that are needed during runtime (dynamically loadable
object files, Scheme files, the interpreter itself) into separate
directories; added "make install" to put files there
o Simplified porting Elk to new systems (assembly language support
and a stack-extending version of "alloca" are no longer required)
o Tested on several new systems (IBM RS/6000, HP9000/700, SGI,
Sony; see the file MACHINES)
o Placed new files CONTRIBUTORS, MIGRATE, and TODO into the toplevel
directory of the distribution
o Added a directory "util" that contains tools to simplify porting
Elk to new environments and other utilities that are useful on
some systems
o Added a directory "scripts" that holds the shell scripts used
to link instances of the interpreter and extensions.
o Removed "stk" directory with test programs (no longer needed)
o Added ANSI C prototypes and C++ "extern C" to all include files
Interpreter kernel:
o Placed include files into a separate directory (include)
o Reorganized the source files (separate source files for different
a.out formats and different dynamic loading mechanisms)
o Changed the way new Scheme objects are allocated to support the
generational garbage collector (not yet present in Elk)
o Rewrote the code implementing continuations to support full
call/cc on all machines
o Fixed tail recursion optimization
o Added support for POSIX signals (as alternative to BSD reliable
signals)
o Removed several artificial limitations (such as max. number of
before-GC and after-GC functions and statically GC-linked objects)
o Removed code that depended on max. number of open files per process
o Added bi-directional ports (input-output-ports); new primitive:
open-input-output-port
o New primitive: port-line-number
o Reader now prints line number on syntax error
o Max. length of a pathname is now determined correctly (using the
POSIX incantations if applicable)
o Added code to support dynamic loading under HP-UX (src/load.shl.c)
o Added code to call extension finalization functions and C++
destructors on termination
o Fixed and improved the code to call extension initialization
functions and C++ constructors on startup or when loading
extensions
o Improved the mechanism to suppress initialization of statically
linked extensions on startup ("dont_init_if_name" in config/site)
o Can use ANSI "atexit" as alternative to redefining "exit"
o Added option -p to specify load path
o Scheme file "initscheme" is now loaded before the toplevel is
loaded
o Changed "rand" to use rand() if random() isn't there
o re-entrant-continuations? primitive is no longer needed (returns
always #t now)
o Added a general mechanism to register termination functions for
individual objects (e.g. to close files on GC); see src/terminate.c
o linkscheme shell script improved; added code to support the
stupid AIX linker
o Fixed numerous things that caused lint or "gcc -ansi" to complain
o Changed the dynamic loading, "dump", and a.out symbol table reading
code in numerous places to make it work on new systems and to make
it more readable and maintainable
Extensions:
o Combined lib/util/symbol.o and lib/util/objects.o into new library
libutil.a; put this library into the default "load-libraries"
o Moved lib/util/string.c and lib/util/string.h into the interpreter
o Moved files from lib directory into new subdirectory "misc"
o Added POSIX sysconf stuff to unix.c to determine max. number of
open files per process
Elk/X:
o Made the code "lint clean" and "gcc -ansi clean"
o Fixed bogus variable definitions in xlib.h and xt.h
o Xlib: added support for client-message event
o Xt: added code to avoid a bug in Motif 1.1.4
o Xt: added optional "mask" argument to context-add-input
o Removed site-dependent information from scm/xwidgets (file is
now created from scm/xwidgets.src during the build process)
o Renamed widget .d files that were longer than 14 characters;
added ALIASES file for each widget set containing mappings from
real widget names to short names
Documentation:
o Added sub-directory "paper" containing a draft version of a
paper about Elk
User-contributed extensions:
o A foreign function interface, an Elk Shell, and a vector extension
have been contributed by J. P. Lewis (contrib/zelk).
Changes from release 1.4 to release 1.5
General:
o Added a "contrib" directory for user-contributed extensions
that I have not fully tested and/or integrated into Elk
o Renamed ORIGIN to COPYRIGHT
Interpreter kernel:
o Added support for the Amiga, A/UX and System V Release 4
(ELF a.out format)
o Added special load-library for MIPS (-lc_G0)
o Extension-interface: replaced Val() by Var_Set()/Var_Get()
o Modified load, autoload, and require so that multiple .o-files
can be loaded simultaneously
o Added -1+ as a synonym for 1-
o Bug fixes:
o fixed a GC-related bug
o fixed a bug that occurred when allocating a very large heap
o fixed a bug in case-insensitive string comparison
o fixed a bug in macro "when"
o changed and clarified semantics of print-depth/print-length
o IEEE 1178/R^4RS compatibility:
o replaced close-port by close-input-port and close-output-port
o added primitives caaaar .. cddddr
o added peek-char primitive
o added -i option for case-insensitive operation
o Removed -bc option
o Removed CBREAK-hack in read-char
Elk/X:
o Fixed several GC-related bugs (objects belonging to Xlib/Xt are
no longer terminated by garbage collector when unreferenced)
o Fixed a bug in the interface to the Grip widget
o Modified code to load widgets to make use of new capability to
load multiple .o-files
Documentation:
o Interpreter kernel: documented new functions, clarified
some sections
o Xlib/Xt: documented X-related behaviour of garbage collector,
pointed out GC-related pitfalls
Changes from release 1.3 to release 1.4
Interpreter kernel:
o Support for the NeXT machines added
o New primitive list? provided
o Two bugs in the tail recursion code fixed
o -v option to trace /bin/ld-calls
o man-page written
Elk/X:
o Tested under X11R5
o X11R3 and earlier versions are no longer supported
o The HP-widget code has been removed from the distribution
o New Xlib-primitives: install-colormap uninstall-colormap
list-installed-colormaps xlib-release-5-or-later?
o Xt interface now supports actions and accelerator tables
o Bug in set-context-fallback-resources! fixed
o New Xt-functions: widget-name widget-translate-coordinates
application-initialize context-add-action install-accelerators
install-all-accelerators xt-release-5-or-later?
o Support for new widget classes: menubutton panner porthole repeater
simplemenu sme smebsb smeline stripchart tree
o vpaned renamed to paned
o Example programs have been moved into a new examples directory
with sub-directories for Scheme, Xlib, Xaw, Motif
o New Xaw example programs that demonstrate the new widget classes,
accelerators, actions, etc.
Other extensions:
o Interface to the GNU gdbm-library